macros['uploadGameJolt']={\nhandler: function(){ \n\nvar GJAPI = {};\n\nGJAPI.iGameID = state.history[0].variables["82246"]; // # change this\nGJAPI.sGameKey = state.history[0].variables["c74f9d1bdcd9572fe2d2b93aaccf7c3a"]; // # change this too, make sure to keep the quotation marks\n\n////////////////////////////////////////////////////////////////////////////////////////////\n//*--------------------------------------------------------------------------------------*//\n//| ______ ______ __ __ ______ __ ______ __ ______ |//\n//| /\s ___\s /\s __ \s /\s "-./ \s /\s ___\s /\s \s /\s __ \s /\s \s /\s__ _\s |//\n//| \s \s \s__ \s \s \s __ \s \s \s \s-./\s \s \s \s __\s _\s_\s \s \s \s \s/\s \s \s \s \s____ \s/_/\s \s/ |//\n//| \s \s_____\s \s \s_\s \s_\s \s \s_\s \s \s_\s \s \s_____\s /\s_____\s \s \s_____\s \s \s_____\s \s \s_\s |//\n//| \s/_____/ \s/_/\s/_/ \s/_/ \s/_/ \s/_____/ \s/_____/ \s/_____/ \s/_____/ \s/_/ |//\n//| |//\n//*--------------------------------------------------------------------------------------*//\n////////////////////////////////////////////////////////////////////////////////////////////\n//*--------------------------------------------------------------------------------------*//\n//| Game Jolt API JS Library v0.4a (http://gamejolt.com) |//\n//*--------------------------------------------------------------------------------------*//\n//| Special Thanks to: |//\n//| |//\n//| David "CROS" DeCarmine, Bruno Assarisse, Jani "JNyknn" Nykänen, |//\n//| Travis "Clonze" Miller, Garden Variety |//\n//*--------------------------------------------------------------------------------------*//\n//| Copyright (c) 2014-2015 Martin Mauersics |//\n//| |//\n//| This software is provided 'as-is', without any express or implied |//\n//| warranty. In no event will the authors be held liable for any damages |//\n//| arising from the use of this software. |//\n//| |//\n//| Permission is granted to anyone to use this software for any purpose, |//\n//| including commercial applications, and to alter it and redistribute it |//\n//| freely, subject to the following restrictions: |//\n//| |//\n//| 1. The origin of this software must not be misrepresented; you must not |//\n//| claim that you wrote the original software. If you use this software |//\n//| in a product, an acknowledgment in the product documentation would be |//\n//| appreciated but is not required. |//\n//| |//\n//| 2. Altered source versions must be plainly marked as such, and must not be |//\n//| misrepresented as being the original software. |//\n//| |//\n//| 3. This notice may not be removed or altered from any source |//\n//| distribution. |//\n//| |//\n//| 4. This software may only be used within the terms of Game Jolt. |//\n//| (http://gamejolt.com/terms/) |//\n//*--------------------------------------------------------------------------------------*//\n////////////////////////////////////////////////////////////////////////////////////////////\n"use strict";\n\n// TODO: add login-check + error-msg on user-data-store operations without current user ?\n\n\n// ****************************************************************\n// configuration attributes\nGJAPI.bAutoLogin = true; // automatically log in users on Game Jolt\nif(GJAPI.iGameID === 0 || GJAPI.sGameKey === "") alert("Game ID or Game Key missing!");\n\nGJAPI.sAPI = "http://gamejolt.com/api/game/v1";\nGJAPI.sLogName = "[Game Jolt API]";\nGJAPI.iLogStack = 20;\n\nGJAPI.iTrophyID = 0;\nGJAPI.tUpload = 0;\nGJAPI.sUpload = 0;\n\n\n// ****************************************************************\n// utility functions\nGJAPI.asQueryParam = function()\n{\n var asOutput = {};\n var asList = window.location.search.substring(1).split("&");\n\n // loop through all parameters\n for(var i = 0; i < asList.length; ++i)\n {\n // separate key from value\n var asPair = asList[i].split("=");\n\n // insert value into map\n if(typeof asOutput[asPair[0]] === "undefined")\n asOutput[asPair[0]] = asPair[1]; // create new entry\n else if(typeof asOutput[asPair[0]] === "string")\n asOutput[asPair[0]] = [asOutput[asPair[0]], asPair[1]]; // extend into array\n else\n asOutput[asPair[0]].push(asPair[1]); // append to array\n }\n\n return asOutput;\n}();\n\nGJAPI.bOnGJ = window.location.hostname.match(/gamejolt/) ? true : false;\n\nGJAPI.LogTrace = function(sMessage)\n{\n // prevent flooding\n if(!( GJAPI.iLogStack)) return;\n if(!(--GJAPI.iLogStack)) sMessage = "(╯°□°)╯︵ ┻━┻";\n \n // log message and stack trace\n console.warn(GJAPI.sLogName + " " + sMessage);\n console.trace();\n};\n\n\n// ****************************************************************\n// main functions\nGJAPI.SEND_USER = true;\nGJAPI.SEND_GENERAL = false;\n\nGJAPI.SendRequest = function(sURL, bSendUser, pCallback)\n{\n // forward call to extended function\n GJAPI.SendRequestEx(sURL, bSendUser, "json", "", pCallback);\n}\n\nGJAPI.SendRequestEx = function(sURL, bSendUser, sFormat, sBodyData, pCallback)\n{\n // add main URL, game ID and format type\n sURL = GJAPI.sAPI + encodeURI(sURL) +\n ((sURL.indexOf("/?") === -1) ? '?' : '&') +\n "game_id=" + GJAPI.iGameID +\n "&format=" + sFormat;\n\n // add credentials of current user (for user-related operations)\n if(GJAPI.bActive && (bSendUser === GJAPI.SEND_USER))\n {\n sURL += "&username=" + GJAPI.sUserName +\n "&user_token=" + GJAPI.sUserToken\n }\n\n // generate MD5 signature\n sURL += "&signature=" + hex_md5(sURL + GJAPI.sGameKey);\n\n // send off the request\n __CreateAjax(sURL, sBodyData, function(sResponse)\n {\n console.info(GJAPI.sLogName + " <" + sURL + "> " + sResponse);\n if((sResponse === "") || (typeof pCallback !== "function")) return;\n\n switch(sFormat) \n {\n case "json":\n pCallback(eval("(" + sResponse + ")").response);\n break;\n \n case "dump":\n var iLineBreakIndex = sResponse.indexOf("\sn");\n var sResult = sResponse.substr(0, iLineBreakIndex - 1);\n var sData = sResponse.substr(iLineBreakIndex + 1);\n \n pCallback\n ({\n success: sResult === "SUCCESS",\n data: sData\n });\n break;\n \n default:\n pCallback(sResponse);\n break;\n }\n });\n};\n\n// automatically retrieve and log in current user on Game Jolt \nGJAPI.bActive = (GJAPI.bAutoLogin && GJAPI.asQueryParam["gjapi_username"] && GJAPI.asQueryParam["gjapi_token"]) ? true : false;\nGJAPI.sUserName = GJAPI.bActive ? GJAPI.asQueryParam["gjapi_username"] : "";\nGJAPI.sUserToken = GJAPI.bActive ? GJAPI.asQueryParam["gjapi_token"] : "";\n\n// send some information to the console\nconsole.info(GJAPI.asQueryParam);\nconsole.info(GJAPI.sLogName + (GJAPI.bOnGJ ? " E" : " Not e") + "mbedded on Game Jolt <" + window.location.origin + window.location.pathname + ">");\nconsole.info(GJAPI.sLogName + (GJAPI.bActive ? " U" : " No u") + "ser recognized <" + GJAPI.sUserName + ">");\nif(!window.location.hostname) console.warn(GJAPI.sLogName + " XMLHttpRequest may not work properly on a local environment");\n\n\n// ****************************************************************\n// session functions\nGJAPI.bSessionActive = true;\n\nGJAPI.SessionOpen = function()\n{\n if(!GJAPI.bActive) {GJAPI.LogTrace("SessionOpen() failed: no user logged in"); return;}\n \n // check for already open session\n if(GJAPI.iSessionHandle) return;\n\n // send open-session request\n GJAPI.SendRequest("/sessions/open/", GJAPI.SEND_USER,\n function(pResponse)\n {\n // check for success\n if(pResponse.success)\n {\n // add automatic session ping and close\n GJAPI.iSessionHandle = window.setInterval(GJAPI.SessionPing, 30000);\n window.addEventListener("beforeunload", GJAPI.SessionClose, false);\n }\n });\n};\n\nGJAPI.SessionPing = function()\n{\n if(!GJAPI.bActive) {GJAPI.LogTrace("SessionPing() failed: no user logged in"); return;}\n\n // send ping-session request\n GJAPI.SendRequest("/sessions/ping/?status=" + (GJAPI.bSessionActive ? "active" : "idle"), GJAPI.SEND_USER);\n};\n\nGJAPI.SessionClose = function()\n{\n if(!GJAPI.bActive) {GJAPI.LogTrace("SessionClose() failed: no user logged in"); return;}\n\n if(GJAPI.iSessionHandle)\n {\n // remove automatic session ping and close\n window.clearInterval(GJAPI.iSessionHandle);\n window.removeEventListener("beforeunload", GJAPI.SessionClose);\n \n GJAPI.iSessionHandle = 0;\n }\n \n // send close-session request\n GJAPI.SendRequest("/sessions/close/", GJAPI.SEND_USER);\n};\n\n// automatically start player session\nif(GJAPI.bActive) GJAPI.SessionOpen();\n\n\n// ****************************************************************\n// user functions\nGJAPI.UserLoginManual = function(sUserName, sUserToken, pCallback)\n{\n if(GJAPI.bActive) {GJAPI.LogTrace("UserLoginManual(" + sUserName + ", " + sUserToken + ") failed: user " + GJAPI.sUserName + " already logged in"); return;}\n\n // send authentication request\n GJAPI.SendRequest("/users/auth/" +\n "?username=" + sUserName +\n "&user_token=" + sUserToken,\n GJAPI.SEND_GENERAL,\n function(pResponse)\n {\n // check for success\n if(pResponse.success)\n {\n // save login properties\n GJAPI.bActive = true;\n GJAPI.sUserName = sUserName;\n GJAPI.sUserToken = sUserToken;\n \n // open session\n GJAPI.SessionOpen();\n }\n \n // execute nested callback\n if(typeof pCallback === "function")\n pCallback(pResponse);\n },\n false);\n};\n\nGJAPI.UserLogout = function()\n{\n if(!GJAPI.bActive) {GJAPI.LogTrace("UserLogout() failed: no user logged in"); return;}\n \n // close session\n GJAPI.SessionClose();\n \n // reset login properties\n GJAPI.bActive = false;\n GJAPI.sUserName = "";\n GJAPI.sUserToken = "";\n \n // reset trophy cache\n GJAPI.abTrophyCache = {};\n};\n\nGJAPI.UserFetchID = function(iUserID, pCallback)\n{\n // send fetch-user request\n GJAPI.SendRequest("/users/?user_id=" + iUserID, GJAPI.SEND_GENERAL, pCallback);\n};\n\nGJAPI.UserFetchName = function(sUserName, pCallback)\n{\n // send fetch-user request\n GJAPI.SendRequest("/users/?username=" + sUserName, GJAPI.SEND_GENERAL, pCallback);\n};\n\nGJAPI.UserFetchCurrent = function(pCallback)\n{\n if(!GJAPI.bActive) {GJAPI.LogTrace("UserFetchCurrent() failed: no user logged in"); return;}\n\n // send fetch-user request\n GJAPI.UserFetchName(GJAPI.sUserName, pCallback);\n};\n\n\n// ****************************************************************\n// trophy functions\nGJAPI.abTrophyCache = {};\n\nGJAPI.TROPHY_ONLY_ACHIEVED = 1;\nGJAPI.TROPHY_ONLY_NOTACHIEVED = -1;\nGJAPI.TROPHY_ALL = 0;\n\nGJAPI.TrophyAchieve = function(iTrophyID, pCallback)\n{\n\n if(!GJAPI.bActive) {GJAPI.LogTrace("TrophyAchieve(" + iTrophyID + ") failed: no user logged in"); return;}\n\n // check for already achieved trophy\n if(GJAPI.abTrophyCache[iTrophyID]) return;\n\n // send achieve-trophy reques\n GJAPI.SendRequest("/trophies/add-achieved/?trophy_id=" + iTrophyID, GJAPI.SEND_USER,\n function(pResponse)\n {\n // check for success\n if(pResponse.success)\n {\n // save status\n GJAPI.abTrophyCache[iTrophyID] = true;\n\t\t\t\n }\n \n // execute nested callback\n if(typeof pCallback === "function") \n pCallback(pResponse);\n });\n};\n\nGJAPI.TrophyFetch = function(iAchieved, pCallback)\n{\n if(!GJAPI.bActive) {GJAPI.LogTrace("TrophyFetch(" + iAchieved + ") failed: no user logged in"); return;}\n\n // only trophies with the requested status\n var sTrophyData = (iAchieved === GJAPI.TROPHY_ALL) ? "" :\n "?achieved=" + ((iAchieved >= GJAPI.TROPHY_ONLY_ACHIEVED) ? "true" : "false");\n\n // send fetch-trophy request\n GJAPI.SendRequest("/trophies/" + sTrophyData, GJAPI.SEND_USER, pCallback);\n};\n\nGJAPI.TrophyFetchSingle = function(iTrophyID, pCallback)\n{\n if(!GJAPI.bActive) {GJAPI.LogTrace("TrophyFetchSingle(" + iTrophyID + ") failed: no user logged in"); return;}\n\n // send fetch-trophy request\n GJAPI.SendRequest("/trophies/?trophy_id=" + iTrophyID, GJAPI.SEND_USER, pCallback);\n};\n\n\n// ****************************************************************\n// score functions\nGJAPI.SCORE_ONLY_USER = true;\nGJAPI.SCORE_ALL = false;\n\nGJAPI.ScoreAdd = function(iScoreTableID, iScoreValue, sScoreText, sExtraData, pCallback)\n{\n if(!GJAPI.bActive) {GJAPI.LogTrace("ScoreAdd(" + iScoreTableID + ", " + iScoreValue + ", " + sScoreText + ") failed: no user logged in"); return;}\n\n // send add-score request\n GJAPI.ScoreAddGuest(iScoreTableID, iScoreValue, sScoreText, "", sExtraData, pCallback);\n};\n\nGJAPI.ScoreAddGuest = function(iScoreTableID, iScoreValue, sScoreText, sGuestName, sExtraData, pCallback)\n{\n // use current user data or guest name\n var bIsGuest = (sGuestName && sGuestName.length) ? true : false;\n\n // send add-score request\n GJAPI.SendRequest("/scores/add/" +\n "?sort=" + iScoreValue +\n "&score=" + sScoreText +\n (bIsGuest ? ("&guest=" + sGuestName) : "") +\n (iScoreTableID ? ("&table_id=" + iScoreTableID) : "") +\n (sExtraData ? ("&extra_data=" + sExtraData) : ""),\n (bIsGuest ? GJAPI.SEND_GENERAL : GJAPI.SEND_USER), pCallback);\n};\n\nGJAPI.ScoreFetch = function(iScoreTableID, bOnlyUser, iLimit, pCallback)\n{\n if(!GJAPI.bActive && bOnlyUser) {GJAPI.LogTrace("ScoreFetch(" + iScoreTableID + ", " + bOnlyUser + ", " + iLimit + ") failed: no user logged in"); return;}\n\n // only scores from the current user or all scores\n var bFetchAll = (bOnlyUser === GJAPI.SCORE_ONLY_USER) ? false : true;\n \n // send fetch-score request\n GJAPI.SendRequest("/scores/" +\n "?limit=" + iLimit +\n (iScoreTableID ? ("&table_id=" + iScoreTableID) : ""),\n (bFetchAll ? GJAPI.SEND_GENERAL : GJAPI.SEND_USER), pCallback);\n};\n\n\n// ****************************************************************\n// data store functions\nGJAPI.DATA_STORE_USER = 0;\nGJAPI.DATA_STORE_GLOBAL = 1;\n\nGJAPI.DataStoreSet = function(iStore, sKey, sData, pCallback)\n{\n // send set-data request\n GJAPI.SendRequestEx("/data-store/set/?key=" + sKey, (iStore === GJAPI.DATA_STORE_USER), "json", "data=" + sData, pCallback);\n};\n\nGJAPI.DataStoreFetch = function(iStore, sKey, pCallback)\n{\n // send fetch-data request\n GJAPI.SendRequestEx("/data-store/?key=" + sKey, (iStore === GJAPI.DATA_STORE_USER), "dump", "", pCallback);\n};\n\nGJAPI.DataStoreUpdate = function(iStore, sKey, sOperation, sValue, pCallback)\n{\n // send update-data request\n GJAPI.SendRequest("/data-store/update/" +\n "?key=" + sKey +\n "&operation=" + sOperation +\n "&value=" + sValue, \n (iStore === GJAPI.DATA_STORE_USER), pCallback);\n};\n\nGJAPI.DataStoreRemove = function(iStore, sKey, pCallback)\n{\n // send remove-data request\n GJAPI.SendRequest("/data-store/remove/?key=" + sKey, (iStore === GJAPI.DATA_STORE_USER), pCallback);\n};\n\nGJAPI.DataStoreGetKeys = function(iStore, pCallback)\n{\n // send get-keys request\n GJAPI.SendRequest("/data-store/get-keys/", (iStore === GJAPI.DATA_STORE_USER), pCallback);\n};\n\n// ****************************************************************\n// create asynchronous request\nfunction __CreateAjax(sUrl, sBodyData, pCallback)\n{\n if(typeof sBodyData !== "string") sBodyData = "";\n \n if(window.XMLHttpRequest)\n {\n var pRequest = new XMLHttpRequest();\n\n // bind callback function\n pRequest.onreadystatechange = function()\n {\n if(pRequest.readyState === 4)\n pCallback(pRequest.responseText);\n };\n\n // send off the request\n if(sBodyData !== "")\n {\n pRequest.open("POST", sUrl);\n pRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");\n pRequest.send(sBodyData);\n }\n else\n {\n pRequest.open("GET", sUrl);\n pRequest.send();\n }\n }\n else console.error(GJAPI.sLogName + " XMLHttpRequest not supported");\n}\n\n\n/*\n* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n* Digest Algorithm, as defined in RFC 1321.\n* Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n* Distributed under the BSD License\n* See http://pajhome.org.uk/crypt/md5 for more info.\n*/\nvar hexcase=0;function hex_md5(a){return rstr2hex(rstr_md5(str2rstr_utf8(a)))}function hex_hmac_md5(a,b){return rstr2hex(rstr_hmac_md5(str2rstr_utf8(a),str2rstr_utf8(b)))}function md5_vm_test(){return hex_md5("abc").toLowerCase()=="900150983cd24fb0d6963f7d28e17f72"}function rstr_md5(a){return binl2rstr(binl_md5(rstr2binl(a),a.length*8))}function rstr_hmac_md5(c,f){var e=rstr2binl(c);if(e.length>16){e=binl_md5(e,c.length*8)}var a=Array(16),d=Array(16);for(var b=0;b<16;b++){a[b]=e[b]^909522486;d[b]=e[b]^1549556828}var g=binl_md5(a.concat(rstr2binl(f)),512+f.length*8);return binl2rstr(binl_md5(d.concat(g),512+128))}function rstr2hex(c){try{hexcase}catch(g){hexcase=0}var f=hexcase?"0123456789ABCDEF":"0123456789abcdef";var b="";var a;for(var d=0;d<c.length;d++){a=c.charCodeAt(d);b+=f.charAt((a>>>4)&15)+f.charAt(a&15)}return b}function str2rstr_utf8(c){var b="";var d=-1;var a,e;while(++d<c.length){a=c.charCodeAt(d);e=d+1<c.length?c.charCodeAt(d+1):0;if(55296<=a&&a<=56319&&56320<=e&&e<=57343){a=65536+((a&1023)<<10)+(e&1023);d++}if(a<=127){b+=String.fromCharCode(a)}else{if(a<=2047){b+=String.fromCharCode(192|((a>>>6)&31),128|(a&63))}else{if(a<=65535){b+=String.fromCharCode(224|((a>>>12)&15),128|((a>>>6)&63),128|(a&63))}else{if(a<=2097151){b+=String.fromCharCode(240|((a>>>18)&7),128|((a>>>12)&63),128|((a>>>6)&63),128|(a&63))}}}}}return b}function rstr2binl(b){var a=Array(b.length>>2);for(var c=0;c<a.length;c++){a[c]=0}for(var c=0;c<b.length*8;c+=8){a[c>>5]|=(b.charCodeAt(c/8)&255)<<(c%32)}return a}function binl2rstr(b){var a="";for(var c=0;c<b.length*32;c+=8){a+=String.fromCharCode((b[c>>5]>>>(c%32))&255)}return a}function binl_md5(p,k){p[k>>5]|=128<<((k)%32);p[(((k+64)>>>9)<<4)+14]=k;var o=1732584193;var n=-271733879;var m=-1732584194;var l=271733878;for(var g=0;g<p.length;g+=16){var j=o;var h=n;var f=m;var e=l;o=md5_ff(o,n,m,l,p[g+0],7,-680876936);l=md5_ff(l,o,n,m,p[g+1],12,-389564586);m=md5_ff(m,l,o,n,p[g+2],17,606105819);n=md5_ff(n,m,l,o,p[g+3],22,-1044525330);o=md5_ff(o,n,m,l,p[g+4],7,-176418897);l=md5_ff(l,o,n,m,p[g+5],12,1200080426);m=md5_ff(m,l,o,n,p[g+6],17,-1473231341);n=md5_ff(n,m,l,o,p[g+7],22,-45705983);o=md5_ff(o,n,m,l,p[g+8],7,1770035416);l=md5_ff(l,o,n,m,p[g+9],12,-1958414417);m=md5_ff(m,l,o,n,p[g+10],17,-42063);n=md5_ff(n,m,l,o,p[g+11],22,-1990404162);o=md5_ff(o,n,m,l,p[g+12],7,1804603682);l=md5_ff(l,o,n,m,p[g+13],12,-40341101);m=md5_ff(m,l,o,n,p[g+14],17,-1502002290);n=md5_ff(n,m,l,o,p[g+15],22,1236535329);o=md5_gg(o,n,m,l,p[g+1],5,-165796510);l=md5_gg(l,o,n,m,p[g+6],9,-1069501632);m=md5_gg(m,l,o,n,p[g+11],14,643717713);n=md5_gg(n,m,l,o,p[g+0],20,-373897302);o=md5_gg(o,n,m,l,p[g+5],5,-701558691);l=md5_gg(l,o,n,m,p[g+10],9,38016083);m=md5_gg(m,l,o,n,p[g+15],14,-660478335);n=md5_gg(n,m,l,o,p[g+4],20,-405537848);o=md5_gg(o,n,m,l,p[g+9],5,568446438);l=md5_gg(l,o,n,m,p[g+14],9,-1019803690);m=md5_gg(m,l,o,n,p[g+3],14,-187363961);n=md5_gg(n,m,l,o,p[g+8],20,1163531501);o=md5_gg(o,n,m,l,p[g+13],5,-1444681467);l=md5_gg(l,o,n,m,p[g+2],9,-51403784);m=md5_gg(m,l,o,n,p[g+7],14,1735328473);n=md5_gg(n,m,l,o,p[g+12],20,-1926607734);o=md5_hh(o,n,m,l,p[g+5],4,-378558);l=md5_hh(l,o,n,m,p[g+8],11,-2022574463);m=md5_hh(m,l,o,n,p[g+11],16,1839030562);n=md5_hh(n,m,l,o,p[g+14],23,-35309556);o=md5_hh(o,n,m,l,p[g+1],4,-1530992060);l=md5_hh(l,o,n,m,p[g+4],11,1272893353);m=md5_hh(m,l,o,n,p[g+7],16,-155497632);n=md5_hh(n,m,l,o,p[g+10],23,-1094730640);o=md5_hh(o,n,m,l,p[g+13],4,681279174);l=md5_hh(l,o,n,m,p[g+0],11,-358537222);m=md5_hh(m,l,o,n,p[g+3],16,-722521979);n=md5_hh(n,m,l,o,p[g+6],23,76029189);o=md5_hh(o,n,m,l,p[g+9],4,-640364487);l=md5_hh(l,o,n,m,p[g+12],11,-421815835);m=md5_hh(m,l,o,n,p[g+15],16,530742520);n=md5_hh(n,m,l,o,p[g+2],23,-995338651);o=md5_ii(o,n,m,l,p[g+0],6,-198630844);l=md5_ii(l,o,n,m,p[g+7],10,1126891415);m=md5_ii(m,l,o,n,p[g+14],15,-1416354905);n=md5_ii(n,m,l,o,p[g+5],21,-57434055);o=md5_ii(o,n,m,l,p[g+12],6,1700485571);l=md5_ii(l,o,n,m,p[g+3],10,-1894986606);m=md5_ii(m,l,o,n,p[g+10],15,-1051523);n=md5_ii(n,m,l,o,p[g+1],21,-2054922799);o=md5_ii(o,n,m,l,p[g+8],6,1873313359);l=md5_ii(l,o,n,m,p[g+15],10,-30611744);m=md5_ii(m,l,o,n,p[g+6],15,-1560198380);n=md5_ii(n,m,l,o,p[g+13],21,1309151649);o=md5_ii(o,n,m,l,p[g+4],6,-145523070);l=md5_ii(l,o,n,m,p[g+11],10,-1120210379);m=md5_ii(m,l,o,n,p[g+2],15,718787259);n=md5_ii(n,m,l,o,p[g+9],21,-343485551);o=safe_add(o,j);n=safe_add(n,h);m=safe_add(m,f);l=safe_add(l,e)}return Array(o,n,m,l)}function md5_cmn(h,e,d,c,g,f){return safe_add(bit_rol(safe_add(safe_add(e,h),safe_add(c,f)),g),d)}function md5_ff(g,f,k,j,e,i,h){return md5_cmn((f&k)|((~f)&j),g,f,e,i,h)}function md5_gg(g,f,k,j,e,i,h){return md5_cmn((f&j)|(k&(~j)),g,f,e,i,h)}function md5_hh(g,f,k,j,e,i,h){return md5_cmn(f^k^j,g,f,e,i,h)}function md5_ii(g,f,k,j,e,i,h){return md5_cmn(k^(f|(~j)),g,f,e,i,h)}function safe_add(a,d){var c=(a&65535)+(d&65535);var b=(a>>16)+(d>>16)+(c>>16);return(b<<16)|(c&65535)}function bit_rol(a,b){return(a<<b)|(a>>>(32-b))};\n\n\n//Twine Commands are run from here\n\nGJAPI.tUpload = state.history[0].variables["trophyUpload"];\nGJAPI.sUpload = state.history[0].variables["scoreUpload"];\n\nif (GJAPI.tUpload = 1){\nGJAPI.trophyID = state.history[0].variables["trophyID"];\nGJAPI.TrophyAchieve(GJAPI.trophyID);\n}else{}\n\nif (GJAPI.sUpload = 1){\nGJAPI.gameScoreID = state.history[0].variables["gameScoreID"];\nGJAPI.scoreGameJolt = state.history[0].variables["scoreGameJolt"];\nGJAPI.scoreLabel = state.history[0].variables["scoreLabel"];\nGJAPI.ScoreAdd (GJAPI.gameScoreID, GJAPI.scoreGameJolt, GJAPI.scoreLabel+GJAPI.scoreGameJolt);\n}else{}\n\nstate.history[0].variables["trophyUpload"] = 0;\nstate.history[0].variables["scoreUpload"] = 0;\n\n}\n}
!<center><<print $player.firstname>> <<print $player.lastname>></center>\n!!Stats:\n<table class="stats">\n<!-- STRENGTH -->\n<tr>\n<th>Strength:</th>\n<td><<print $player.strength>></td>\n</tr>\n<!-- INTELLIGENCE -->\n<tr>\n<th>Intelligence:</th>\n<td><<print $player.intelligence>></td>\n</tr>\n<!-- CHARISMA -->\n<tr>\n<th>Charisma:</th>\n<td><<print $player.charisma>></td>\n</tr>\n</table>\n----\n\n!!Social:\n\nSoma: <<print $SomaName>>: <<print $SomaLinkStatus>>\n//This isn't quite finished yet. It is PRE-ALPHA after all...//\n\n/%Cheir: <<print $CheirName>>: <<print $CheirLinkStatus>> \nOnyx: <<print $OnyxName>>: <<print $OnyxLinkStatus>> \nOps: <<print $OpsName>>: <<print $OpsLinkStatus>> \nBronchio: <<print $BronchioName>>: <<print $BronchioLinkStatus>>%/\n
<<if $player.gender is "Male">>\n"So you aren't a handsome man? Then why did you say so? Maybe my hearing has gone bad again."\n<<else if $player.gender is "Female">>\n"So you aren't a beautiful woman? Then why did you say so? Maybe my hearing has gone bad again."\n<<endif>>\nYou once again hear his chuckle. To be honest, you are getting a bit more annoyed with this person, and not just with this laughter. And your head is slowly starting to hurt just a little.\n\n"So I will ask you again, and also your name, just to make sure I got it right. And this connection tends to get weak. So I suggest that you make sure you get it right this time. "\n\n"So what is your name?"\n\n"My name is:\n<table class="stats">\n<tr>\n<th>First Name:</th>\n<td><<textbox "$player.firstname" "Devyn">></td>\n</tr>\n<tr>\n<th>Last Name:</th>\n<td><<textbox "$player.lastname" "Cardian">></td>\n</tr>\n</table>\n\n"And also, are you a female or a male?"\n<<radiobutton "$player.gender" "Female" selected>> Female\n<<radiobutton "$player.gender" "Male">> Male\n\n[[Next|Confirm]]
You remember going to bed at a reasonable time last night. However you wake up in a weird area. Everything seems to be pitch black but the platform you are standing on. The platform is glowing a weird blue and purple aura. \n\nYou then heard a voice speaking to you.\n\n"Hello. Do not be afraid." The voice booms out. You look around. The voice seems to be everywhere at once.\n\n"Who are you?" You ask\n\n"I am Illuminatus. Do not worry. Harming you is not my intention. But I do need help with a certain task. Would you help me with this?"\n\nYou look around still looking for the sound of the voice. You aren't sure where it is coming from. But you gave up on looking when the question is asked. You nod, not even knowing what the task is...\n\n"Good. I shall give you the details. But first, what is your name?"\n\nYou take a deep breath, you slowly speak out...\n\n"My name is:\n<table class="stats">\n<tr>\n<th>First Name:</th>\n<td><<textbox "$player.firstname" "Devyn">></td>\n</tr>\n<tr>\n<th>Last Name:</th>\n<td><<textbox "$player.lastname" "Cardian">></td>\n</tr>\n</table>\n"And also, are you a female or a male?"\n<<radiobutton "$player.gender" "Female">> Female\n<<radiobutton "$player.gender" "Male" checked>> Male\n\n[[Next|Confirm]]\n
"Of Course. Our special today is French Vanilla. Because we need to get rid of it. Trust me, it is free. The manager even said so himself."\n\nShe smiles as she hands you a Gargantuan 64 oz. of French Vanilla Cappucino.\n\n//I had to force it on you after all! I don't freaking care if you don't like French Vanilla or not! But if you makes you feel better I am working on your choices here!!//\n\nShe smiles and looks at you, "Enjoy!"\n\nYou look at the cup. You know you aren't going to finish it. Your mind is telling you aren't going to finish it. Hell, your poor bladder is telling you aren't going to finish it.\n\nYou drink it down within 10 seconds. \n\n//Because I said so!//\n\nIt was refreshing and your bladder is screaming in pain and you go relieve it in the restroom, and head back to your seat.\n\n[[Return to Clerk|Coffee Shop]]\n[[Leave Latteza|outside]]
Welcome to (insert bank name here). How can I help you today?\n\nYou have <<print $BankAccount>> MUbits in your current account.\n\n[[Deposit]]\n[[Withdrawl]]
"I am glad you have accepted this task. But to make this slightly more easier on you. I shall give you a direction to the first person I would like you save. This being will be in the park. Go there."\n\nYou nod in agreement. You aren't exactly sure for what you are agreeing with yet. But you agree to it.\n\n"Alright. Enjoy your life as it was before. But remember, your life decisions also affect the ones you that you are destined to save."\n\n//You start seeing a bright light. Then you find yourself in your bed inside <<click "your room">><<goto "Your Room">><</click>>. You are under your covers and wake up. You slowly get out of bed and look into the mirror across from your room. You notice the world turn black around you, although it is lit up from the purple aura, lighting the dark world around you showing your room, although it is in different shades of purple. And you blink once again and you are back to seeing the normal world.//\n<<silently>>\n<<if $SomaGenderator eq 1>>\n<<set $soma.gender to "Male">><<set $Males += 1>>\n<<elseif $SomaGenderator eq 2>>\n<<set $soma.gender to "Female">><<set $Females += 1>>\n<</if>>\n<<endsilently>>
''The Journey Begins''\nDifficulty: Bronze\nDescription: You woke up with a new task at hand.\n\n''Attaching the Hand
"You see, I need you to help a few people here and there to not become Shadows. These select people are to help in a war that is coming in a few days, these people are going to help us. The only problem is that a certain shadow, who has named himself "Shato Corruptor," has got a hold of them."\n\n"Now, he is going to sway you too. And to be honest, you can side with him too. We are not going to judge you on your decisions. However, if you are going to be with the enemy, you will be targeted in the future. Its a warning to you."\n\n"Now, for the task at hand. There are 5 people that are needing your help. But they don't know who they are themselves, and don't know about their own auras."\n\n"Oh wait, you probably can't even see Auras yet can you? Don't worry, you will see them in time."\n\nOnce again, you can hear his chuckling a bit\n\n"You start when you wake up. Any questions before I end this connection?"\n\n[[Who or What is Shato Corruptor?]]\n[[Who are the people I am looking for?]]\n[[How will I be able to help them?]]\n[[Why me?]]\n[[No, I dont have any questions.]]
How many MUBits would you like?\n\nDeposit: <span id="deposit"><<print $Deposit>></span> ( \s\n<<button "+">>\n <<if $Wallet gt 0>>\n <<set $DepositAmount += 5, $Wallet -= 5>>\n <<replace "#deposit">><<print $Deposit>><</replace>>\n <</if>>\n<</button>>\s\n / \s\n<<button "-">>\n <<if $Deposit gt 0>>\n <<set $Deposit--, $Wallet++>>\n <<replace "#deposit">><<print $Deposit>><</replace>>\n <</if>>\n <<if $Deposit gt 0>>\n <<replace "#next-link">><</replace>>\n <</if>>\n<</button>>\s\n )\n\n<span id="next-link"><<if $Deposit gt 0>>[[Accept Deposit]]<</if>></span>\n[[Return Card]]
<<click "Start Game">><<goto "The Beginning">><</click>>\n<<click "Load Game">>\n<<script>>\nvar dialog = UI.saves();\n<</script>>\n<</click>>\n[[Credits]]\n\n\n
The Bartender smiled, "One of the new ones eh? Never thought I would hear that being ordered anytime soon. This one is actually in a bottle. I will go get it."\n\nThe bartender leaves and the man gives you a nudge with his elbow. Though his smile has disappeared a bit. "Just warning you, that is only if I was drinking too much."\n\nYou just shook your head just a bit. The man looks at you, "Its true. And I will tell you, its the one alcohol product that doesn't make you drunk!"\n\nYou chuckle a little bit, think this is slightly crazy. But hey, to each his own right?\n\n
"The drinks?
<<if $player.gender is "Male">><<set $MaxFemales to 3>><<set $MaxMales to 2>>"Oh yes I can see you perfectly now. A good healthy man. But I am only getting your Aura, its just a line, not sure what color it really is yet. Hmm..." \n<<else if $player.gender is "Female">><<set $MaxFemales to 2>><<set $MaxMales to 3>>"Oh yes I can see you perfectly now. A good healthy woman. But I am only getting your Aura, its just a line, not sure what color it really is yet. Hmm..." \n<<endif>>\nHe goes silent for a moment. Then you hear somebody snap their fingers. You can only think its Illuminatus. "What about your abilities? What are your strengths?"\n\n''You have <span id="pointbuy"><<print $PlayerPoints>></span> points left to spend''\n\n<table class="stats">\n<!-- STRENGTH -->\n<tr>\n<th>Strength:</th>\n<td><<button "-">>\n <<if $player.strength gt 10>>\n <<set $player.strength--, $PlayerPoints++>>\n <<replace "#stats-str">><<print $player.strength>><</replace>>\n <<replace "#pointbuy">><<print $PlayerPoints>><</replace>>\n <</if>>\n <<if $PlayerPoints gt 0>>\n <<replace "#next-link">><</replace>>\n <</if>>\n<</button>></td>\n<td><span id="stats-str"><<print $player.strength>></span></td>\n<td><<button "+">>\n <<if $player.strength lt 20 and $PlayerPoints gt 0>>\n <<set $player.strength++, $PlayerPoints-->>\n <<replace "#stats-str">><<print $player.strength>><</replace>>\n <<replace "#pointbuy">><<print $PlayerPoints>><</replace>>\n <</if>>\n <<if $PlayerPoints eq 0>>\n <<replace "#next-link">>[[Next|Finishing touches]]<</replace>>\n <</if>>\n<</button>></td>\n</tr>\n<!-- INTELLIGENCE -->\n<tr>\n<th>Intelligence:</th>\n<td><<button "-">>\n <<if $player.intelligence gt 10>>\n <<set $player.intelligence--, $PlayerPoints++>>\n <<replace "#stats-int">><<print $player.intelligence>><</replace>>\n <<replace "#pointbuy">><<print $PlayerPoints>><</replace>>\n <</if>>\n <<if $PlayerPoints gt 0>>\n <<replace "#next-link">><</replace>>\n <</if>>\n<</button>></td>\n<td><span id="stats-int"><<print $player.intelligence>></span></td>\n<td><<button "+">>\n <<if $player.intelligence lt 20 and $PlayerPoints gt 0>>\n <<set $player.intelligence++, $PlayerPoints-->>\n <<replace "#stats-int">><<print $player.intelligence>><</replace>>\n <<replace "#pointbuy">><<print $PlayerPoints>><</replace>>\n <</if>>\n <<if $PlayerPoints eq 0>>\n <<replace "#next-link">>[[Next|Finishing touches]]<</replace>>\n <</if>>\n<</button>></td>\n</tr>\n<!-- CHARISMA -->\n<tr>\n<th>Charisma:</th>\n<td><<button "-">>\n <<if $player.charisma gt 10>>\n <<set $player.charisma--, $PlayerPoints++>>\n <<replace "#stats-cha">><<print $player.charisma>><</replace>>\n <<replace "#pointbuy">><<print $PlayerPoints>><</replace>>\n <</if>>\n <<if $PlayerPoints gt 0>>\n <<replace "#next-link">><</replace>>\n <</if>>\n<</button>></td>\n<td><span id="stats-cha"><<print $player.charisma>></span></td>\n<td><<button "+">>\n <<if $player.charisma lt 20 and $PlayerPoints gt 0>>\n <<set $player.charisma++, $PlayerPoints-->>\n <<replace "#stats-cha">><<print $player.charisma>><</replace>>\n <<replace "#pointbuy">><<print $PlayerPoints>><</replace>>\n <</if>>\n <<if $PlayerPoints eq 0>>\n <<replace "#next-link">>[[Next|Finishing touches]]<</replace>>\n <</if>>\n<</button>></td>\n</tr>\n</table>\n\n<span id="next-link"><<if $PlayerPoints eq 0>>[[Next|Finishing touches]]<</if>></span>
<<if $Bathroom is "Unvisited">>\nYou would notice that your bathroom is practically different then other peoples. It is extremely clean. When you turn on the light, it looks as if everything is silver. But of course, you enjoy the cleaniness.\n\n//The bathroom is used to 'relieve' yourself from time to time. As of now, you don't need to relieve yourself. But when you are feeling constipated and such. As of now, you can return to [[Your Room]]//\n<<set $Bathroom = "Visited">>\n<<elseif $Bathroom is "Visited">>\n//As of now, you don't need to use the bathroom. This feature is not in just yet. But will be. So please return to [[Your Room]]//\n<<endif>>
The Bartender raises an eyebrow for a moment while wiping his glass. "Me? You want to learn about me? Well, nobody has asked me that before."\n\nHe leans over the counter smiling. \n\n
"Well aren't you a bit rude?" she replied. She looked away from you and looked at the park. \n\nYou sit down next to her. She scoots away from you. b"I don't know if I want you to sit here. After all you won't tell me your name," Daisy replied. She seems a bit wound up. \n\n[["I'm sorry, My name is..."]]\n[[Stay Silent.]]\n\n
"<<print $player.firstname>>, that is a very nice name."\n\n"And the last name...its a bit odd, after all. Names like <<print $player.lastname>> has to be a last name right?"\n\nIlluminatus chuckles for a moment. Then he calmly settles it down. You still could not tell where the laugh is really coming from. Almost omnipresent. And also annoying.\n\nThen there was silence. It was quiet for a bit, almost deafening. Then you heard the boice boom again.\n\n"And also you are a <<print $player.gender>>," He says. He sounds like he was confirming it. But he also made it to where it was also a question as well.\n\n"Is this correct?"\n\n[[Yes|Your Abilities]]\n[[No]]\n\n
<<if $Park is "Unvisited">><<if $cheir.gender is "Male">>\nYou walk into the park and see a man with binoculars around his neck. He seemes to be a young man. About 18 as you can tell, with your eyes. He could be a bit more older, or younger. You never know in this day and age.\n\nYour eyes start to hurt a little and the world goes black again. The only thing that is shining is a small red flame wrapped around him. And everything around him is the shades of red. Although it seems different then your aura. It has a couple of faint streaks of black whipping around inside the aura. \n\nCould this be the person you needed to meet?\n\n[[Walk to him|Walk to Soma]]\n<<link "outside" "walk away">>\n<<elseif $cheir.gender is "Female">>You walk into the park and see a woman with bird seed by her side. She is grabbing a handful and sparingly scatter it on the ground. She looks like a young woman. About 18 as you can tell with your eyes.\n\nYour eyes start to hurt a little and the world goes black again. The only thing that is shining is a small red flame wrapped around her. And eveyrthing around her is the shades of blue. Although it seems different then your aura. It has a couple of faint streaks of black within the flame. \n\nThis must be the person you needed to meet.\n\n[[Walk to her|Walk to Soma]]\n<<link "outside" >>\n<</if>>\n<<set $Park to "Visited">>\n<</if>>\n\n<<link "outside" "walk away">>
After discussing with your abilities and strengths with the non-appearing Illuminatus. You hear a slight "ah" coming from him. \n\n"Nice, very nice. I have picked the right person for the [[task at hand|The Task At Hand]]. Because you are very much needed."
This feature is meant for letters. This feature is to make it to where you get hints and tips about your Social Links. This will be implemented later in the game.\n\nIdeas:\n\tLetters of your parents every once in a while.\n\tTips and Hints throughout the game\n\tSpecial Events that are happening within a week.\n\tThreats from Shadows\n\tMysterious Blue envelopes
Since the update to SugarCube, I no longer have a thing to show credits. And gosh darn it, people worked off their buns to create wonderful programs to help make this game. \n\nThanks to:\n\nTwine 1.4.2 by Chris Klimas (twinery.org)\n\nSugarcube 2 Story Format by TheMadExile\n\nGameJolt API v1 by Martin Mauersics\n\nTwine GameJolt API Import by Terminator_8464\n\n\n\n\n[[Return to Title Screen|Title Screen]]
You walk outside your house. What is you see is a mailbox. As of now the flag isn't up. So no mail just yet. You see your neighbors going out and getting the newspaper. You would think about getting a subscription, but its a bit hard to do so. Considering its a weekly subscription and that costs alot of MUBits. \n\n<<if $Outside is "Unvisited">>\n<<set $Outside to "Visited">>You have a couple of places you could visit. You could visit the local [[coffee shop|Coffee Shop]]. There is also the local <<click "park">><<goto "Park">><</click>> as well. And there is a new bar that just opened up called The Baron But You can always go back to [[your room|Your Room]]. \n<<else>>\nWhere to, <<print $player.firstname>>?\n[[Coffee Shop]]\n<<click "Park">><<goto "Park">><</click>>\n[[Your Room]]\n<<endif>>
The people are talking in somewhat of a low volume. You start heading towards the bar to the bartender.\n\nYou smile and give him your ID. He looks at the front and back of it. Pretty much to notice that it isn't fake. "Welcome to The Baron," He says. "I am Nick, the Bartender. It is nice to meet you <<if $player.gender is "Male">>Mr. <<else>>Mrs. <<endif>><<print $player.lastname>>. This is a place to relax and, well to find gossip." He chuckles a little bit.\n\n"So what can I do for you. Its Happy Hour!! So the drinks are free! And since I am programmed to say that the Writer hasn't figured out to fully implement a clock yet. It is always Happy Hour here!!"\n\nHe once again chuckles. "So what do you want to drink? There is our day's menu."\n\n//Unfortunately he is right. I don't have a clock set up yet. But if you are wanting to buy something. Feel Free to, however you will drink it right away....//\n\n[[Hairy Hangover]]\nSpazi\n[[Soggy Son]]\nCheap Beer\nExpensive Beer\n[[Shirley Temple]]\nTalk to Bartender\n\n
Ale Alerk Vj kal Sytkid Hhwij
"Once again. The people you are looking for is vital to a future war. And vital to everyone's lives as well. "\n\n"And I will be honest, they are descendents of very important people. Those very important people are well...important as the name implies."\n\n"When you can see Auras, you can see a bit of a dark twist to it. Almost a darkened color of their Aura. It is usually black, but sometimes gray, depending on the sin of the person they are using against. Or if the sin hasn't occured yet. Then you need to stop it before it hits that person. Or people in this case."\n\n"These people will be a great help in a war. If you can't save all of them, at least save one. One can withstand the odds of many."\n\nHe sighs, but then his voice turns stern for a moment, "But don't think that you must only save one and be done with your task. THat isn't how it works half the time."\n\n"Do you have any more questions?"\n\n[[Who or What is Shato Corruptor?]]\n[[How will I be able to help them?]]\n[[Why me?]]\n[[No, I dont have any more questions.|No, I dont have any questions.]]
"That depends on what is going on in their lives. What Shato Corruptor is using against them, or using it to his advantage in their lives. Use the information the Descendants give you to your advantage as well."\n\n"The idea is to listen to the people you are helping. The more you help, the more you are able to lean them back to our side. It isn't hard, but it isn't easy either." \n\n"I also need to let you know, that the choices you make also affect the lives of others. But then again, I am probably treating you like a child who knows nothing. But hey, what do I know, I am just connecting to your mind."\n\n"Do you have more questions for me?"\n\n[[Who or What is Shato Corruptor?]]\n[[Who are the people I am looking for?]]\n[[Why me?]]\n[[No, I dont have any more questions.|No, I dont have any questions.]]
story.domid = "Project Shadow";\nstory.title = "Project Shadow";\nstrings.identity = "journey";\nconfig.passages.start = "Title Screen";\nconfig.history.controls = false;\nconfig.ui.stowBarInitially = true;\n\nconfig.saves.slots = 5;\nconfig.saves.autosave = "autosave";\nconfig.saves.isAllowed = function () {\n if (passage() === "Your Room") { return true; }\n if (tags().contains("autosave")) { return true; }\n \n\treturn false;\n};\n\nstrings.saves.disallowed = "You do not have your Journal. Without your Journal, you cannot write and record your journey.";\n\nconfig.saves.autoload = true;
"So you want to chat up with me hmm? You know, I am not really much of help with life and advice. But hey, what do I know, it could help you out in the future."\n\nThe Bartender smiles. "So what do you want to talk about?"\n\n[[Gossip]]\n[[The Bartender|Bartender's Life]]\n[[The Drinks]]
"True. But still, the bench we are sitting on. A good enough rest area for me," Daisy complained.
<<if $YourRoom neq "Visited">>\n<<set $YourRoom = "Visited">>Your room contains a bed, a mirror, and a night stand. It is very clean You also have a picture holder. You have no pictures in the frame so far.\n\nYou have a <<click "Journal">><<script>>var dialog = UI.saves();<</script>><</click>> here. This journal keeps your thoughts and days of life private. Sometimes your days get recorded as well. ''This is used to record your Journey. Use this OFTEN!!''\n\nYou have a door going [[outside]] to the south. You also have a [[bathroom]] and [[kitchen]].\n\nSo where to?\n<<else>>\nYour room contains a bed, a mirror, and a night stand. It is very clean You also have a picture holder. You have no pictures in the frame so far.\n\nYou have a <<click "Journal">><<script>>var dialog = UI.saves();<</script>><</click>> here. This journal keeps your thoughts and days of life private.\n\nYou have a door going [[outside]] to the south. You also have a [[bathroom]] and [[kitchen]].\n<</if>>
"Sure. And the manager seems to know you so its free at the moment."\n\nThe woman hands you a large 36 oz. cup of sweet ice tea. The clerk smiles and looks at you.\n\n"Enjoy your tea."\n\nYou drink it slowly throughout the day. And it was a refreshing ice tea for you.\n\n[[Return to Clerk|Coffee Shop]]\n[[Leave Latteza|outside]]
<<if $YourRoom is "Visited">><<click "You">>\n<<script>>\nvar dialog = UI.setup("Stats");\nnew Wikifier(dialog, tale.get("Stats").processText());\nUI.open();\n<</script>>\n<</click>>\n<<else>> <<endif>>\n\n
"You know. I don't know if you are down right dumb, or absolutely a genius for staying silent." Daisy explained. She sounded a bit weird.
<<if $soma.gender eq "Male">><</if>>\n"Interesting. Though I might have heard your name before there, <<if $player.gender is "Female">>Mrs. <<else>>Mr. <</if>> <<print $player.lastname>>," Trent said. \n\nTrent sighs and looks around. "You know, I have always enjoyed this park. People gather around with their kids or their pets, their lovers or just come here by themselves. And enjoy the scenary."\n\nYes, as he is explaining this\n\n"So why they heck do we need an oasis built exactly here?" Trent asks curiousity. \n\n<<else>>\n"...<<print $player.firstname>> <<print $player.lastname>>," you tell her.\n\n<<if $player.gender eq Male>>\n"Ah, nice to meet you Mr. <<print $player.lastname>>. It is a pleasure to meet you." She smiles at you. "You know you are quite the gentleman." \n\n<<else>>\n"Ah, nice to meet you Mrs. <<print $player.lastname>>." She smiles at you. Then she turns her head straight and looks at the park. "It is very nice to meet a very fine lady."\n<<endif>>"Such a beautiful park isn't it?" You agree with her, yes it is a beautiful park. "Shame that its going away soon..."\n\nYou look up shocked. "Going away?" You asked. \n\n"Yeah, haven't you heard? There is going to be an oasis here. And not the nice desert kind either."\n\n[["They really are building an oasis? Isn't that a good thing?"|A Good Thing?]]\n[["Really? When did they decide that?"|Decision made when?]]\n[["That can't be good. I enjoy this park."|Bad Idea]]\n[[""|Choice 4]]\n[[""|Choice 5]]
""
<<set $AlcoholLevel += ".01">>"Oh boy. That combonation? You really like the strong stuff don't you?" The bartender goes to you.\n\nThe bartender grabs a small glass and a couple of liquors from the counter. It looks like Jaggermeister and a Vanilla Vodka. He also, for some strange reason, brought out a bottle of Tobasco Sauce. \n\nHe pours the first shot of Jaggermeister with about two-thirds of a shot of the vodka into the small glass. Then he grabbed a bottle of lemon juice and squeezed it for about a half a second.\n\nWhile he stirs the drinks, the man sitting next you gives you a slight nudge.\n\n"You know this drink isn't original. I heard rumor about the Writer giving away a Stack 5 worth of Stack 5s to a person who can find out what the reference is from. I doubt he is willing to give out that much chocolate!"\n\n//That guy is full of balogna sandwiches by the way!! I didn't say that!//\n\nAt the last bit, the man grabbed a fountain gun and press a Cherry Sprite button. The man stirs it another 30 seconds, and hands you the glass.\n\n"Say hello to the spinning world, I can't believe you of all people would order that. You are a braver man than I am," The bartender said as he started to hand you the drink.\n\nYou started drink it. And you can feel the carbonation go down your throat.\n\nWhen you finish it, you put your glass down. THe bartender eyes grew and shook his head.\n\n"Anything else, <<print $player.firstname>>?"\n\n"Yes, but the same"\n[["Yes"|Another Drink]]\n["No, I need to go Somewhere"|outside]]\n[["No, I want to do something else"|The Baron]]\n
Daisy shrugged just a bit. "It could be. But what about the park?" She looks at it and sighs. \n\n"Its something to be treasured. The park has been around ever since the town was built. I just wonder what the city was thinking bringing that oasis." She says. \n\n"What could be a good thing about the oasis?" She asks you.\n\nYou look at her for a moment. You think for a moment. Then you spoke to her...\n\n[["Maybe you are right..."]]\n[["The oasis creates jobs for people."]]\n[["Could add a rest area to the park."]]\n
This is the Stories for Social Links I plan to make. Each social link story is the same except for the genders and maybe their placement. And they can change within the player's interaction.\n\n''Cheir (Good Ending):''\nThe Cheir social link begins within the Park. Apparently the main character finds out that the park is being renovated into an Oasis, a "rest area on steroids." You find out that she has joined with a group who grew up with the park. \n\nHowever, the leader of the group is not Cheir, but a man named Oliver. However, this man seems to be off to the main protagonist. When the main protagonist changes visions to see his aura, he notices that it is completely dark. Oliver then is revealed to be a Shadow\n\nOliver tends to grab explosives and destroy the so far built oasis. However, Cheir seems to be not excatly enthusiastic about this way as it could hurt people in the process. But Oliver tries to get her to change her mind, that without this, the park would be gone. Cheir then understands but still isn't quite sure about this. Oliver then promised to make sure that he wouldn't hurt anyone. \n\nOliver then starts getting the explosives ready. Oliver then calls the hired construction crew to be ready for the same time when he plans to set off explosives.\n\n\n
"Shato Corruptor is part of the Circle of Thanatos. Something that does not need explanation on your part. THe point being is that he is the main corruptor of Shadows."\n\n"But I will explain Corruptor Shadows to you. What they do is find a sin that has or not has occurred within a victim's Aura, and they use that against the person they are corrupting. They use this, what you humans call 'inner demons' to twist the morality of a victim. And with each twist, the morals get twisted and corrupted"\n\n"And if the victim dies with his or her moral completely corrupted, that person becomes a Shadow. Unfortunately, we can't lose these people. And I understand that we can't save all of them. But still, it would be great if we could save all five."""\n\n"Do you have any more questions?"\n\n[[Who are the people I am looking for?]]\n[[How will I be able to help them?]]\n[[Why me?]]\n[[No, I dont have any more questions.|No, I dont have any questions.]]
You look around for a bit. You start noticing a big door in front of you, you are standing on a black cliff, although it feels as if it was a cloud. You kick it once, it feels like you kicked into a cloud. You can also see that it looks like you just kicked a small portions of the smoke in the direction you kicked. The black smoke lands in front of you You see the door open in front of you. \n\nYou start to hear screams of pain, and maybe once in a while a muffled scream. Then a large creek comes from the opening door in front of you. You hear the words, "Come on in, Descendent."\n\nYou can feel your legs walking towards the door. You want to stop, but you can't seem to. You see clouds of black dust going around. The stench of sulfur fills your nostrils for a moment. It doesn't seem to bother you. \n\nBut a different scent starts to fill your nose. It smells like mold and decay. Something familiar.
<<if $LastDrink is "Hairy Hangover">>\n"Another One? Oh geeze. Do you enjoy this //fine// taste to it?"\n\nHe seemed to be sarcastic when he said the word fine. Of course, it was an unlikely concoction of a drink. Whoever thought of it was particullary probably was high and drunk. That or possibly bored.\n\n//It wasn't made by me. And I haven't been high or drunk in my life. So don't even think about it. Besides, do you really really think I would know how this tastes? I just put it in vague answer because I never tasted Jaggermeister in the first place. Or any type of alcohol you drink//\n\nThe man next to you nudges. "You know, I heard those put hair on your chest. So says the Writer!!"\n\n//It is called a HAIRY Hangover after all...//\n\nThe Bartender finishes the drink and gives you the glass. You once again let it go down.\n\n"Okay anything else?"\n<<endif>>\n\n
You can hear a sigh come out\n\n"Unlike some people I have seen for help, I need someone who can connect to people. I have seen you help other people as well. Plus, you are one of my descendants. And I also need a person who just can see Auras and has Empathy. I apologize for the inconvience for this part of your life. But don't worry, I will make it rewarding at the end."\n\n"So, any other questions?"\n\n[[Who or What is Shato Corruptor?]]\n[[Who are the people I am looking for?]]\n[[How will I be able to help them?]]\n[[No, I dont have any more questions. |No, I dont have any questions.]]
<<if $Kitchen is "Unvisited">>\n\nThe kitchen is just like your entire place. It is clean and everything organized. However your cabinents are empty and your pots and pans are clean and hanging above the cutting shelf. They are mainly used for cleaning.\n\n''When you bring somebody home you can come here and cook. You can also cook your own meal.''\n\n//However, this feature isn't quite in yet. This is sort of in the Alpha stage yet. So please go to [[Your Room]] until the thing is made in a later version//\n<<set $Kitchen = "Visited">>\n<<elseif $Kitchen is "Visted">>\n//This feature isn't quite in yet. This is sort of in the Alpha stage yet. So please go back to [[Your Room]] until the thing is made in a later version//\n<<endif>>\n
Thank you for your service!
The clerk welcomes you to Latteza. "How Can I help you?"\n\n[["Can I have some Sweet Tea?"]]\n[["Can I have a regular cup of coffee?"]]\n[["Can I have a cappucino?"]]\n[[Leave Latteza and go Outside|outside]]
"...<<print $player.firstname>>. <<print $player.firstname>> <<print $player.lastname>> ."
/% Place your story's setup code in this passage.\nAny macros in this passage will be run before the Start passage (or any passage you wish to Test Play) is run. %/\n\n/%1 Basic Character stats for the protagonist%/\n\n<<set $player = {\n\tfirstname: "",\n\tlastname: "",\n\tgender: "",\n\tmorality: "Neutral",\n\tlightpoints: 0,\n\tshadowpoints: 0,\n\tstrength: 10,\n\tintelligence: 10,\n\tcharisma: 10\n}>>\n<<set $PlayerPoints = 15>>\n\n/%-----------------------------------%/\n\n/%2. Social Links This is the main mechanics for the Social Links for the game. This is based on Gender and Arcana. Also as well, the Genderators are activated after the Dream Sequence with Illuminatus%/\n\n<<set $Males = 0>>\n<<set $Females = 0>>\n<<set $MaxMales = 0>>\n<<set $MaxFemales = 0>>\n<<set $CheirGenderator = random(1,2)>>\n<<set $SomaGenderator = random(1,2)>>\n<<set $OnyxGenderator = random(1,2)>>\n<<set $OpsGenderator = random(1,2)>>\n<<set $BronchioGenderator = random(1,2)>>\n\n<<set $cheir = {\n\tfirstname: "",\n\tlastname: "",\n\tgender: "",\n\tlightpoints: 0,\n\tshadowpoints: 0,\n\tsocial: 0,\n\tlinkstatus: "Never Met",\n}>>\n<<set $soma = {\n\tfirstname: "",\n\tlastname: "",\n\tgender: "",\n\tlightpoints: 0,\n\tshadowpoints: 0,\n\tsocial: 0,\n\tlinkstatus: "Never Met",\n}>>\n<<set $onyx = {\n\tfirstname: "",\n\tlastname: "",\n\tgender: "",\n\tlightpoints: 0,\n\tshadowpoints: 0,\n\tsocial: 0,\n\tlinkstatus: "Never Met",\n}>>\n<<set $ops = {\n\tfirstname: "",\n\tlastname: "",\n\tgender: "",\n\tlightpoints: 0,\n\tshadowpoints: 0,\n\tsocial: 0,\n\tlinkstatus: "Never Met",\n}>>\n<<set $bronchio = {\n\tfirstname: "",\n\tlastname: "",\n\tgender: "",\n\tlightpoints: 0,\n\tshadowpoints: 0,\n\tsocial: 0,\n\tlinkstatus: "Never Met",\n}>>\n<<set $PeopleSaved = 0>>\n<<set $PeopleCorrupted = 0>>\n<<set $pictures = 0>>\n\n/%-----------------------------------%/\n\n/%3 This is the currency section. Currency name is the MUbits%/\n\n<<set $BankAccount = 100>>\n<<set $Wallet = 20>>\n<<set $Deposit = 0>>\n<<set $Withdrawl = 0>>\n\n/%-----------------------------------%/\n\n/%4 This is the main GAMEJOLT API for the game. This where the input of the game to import information to Gamejolt.com%/\n\n\n\n\n/%-----------------------------------%/\n\n/%This is the Tutorial Section. This is the switches the turn on and off as soon you go through this.%/\n<<set $YourRoom = "Unvisited">>\n<<set $Outside = "Unvisited">>\n<<set $Bathroom = "Unvisited">>\n<<set $CoffeeShop = "Unvisited">>'\n<<set $Kitchen = "Unvisited">>\n<<set $Park = "Unvisited">>\n<<set $TheBaron = "Unvisited">>\n<<set $Sociallink = "Unestablished">>
"So, what can of drink would you like? There is more drinks then meets the eye. Ho ho!"\n\n[[Hairy Hangover]]\nSaggy Son\nCheap Beer\nExpensive Beer\n[[Shirley Temple]]
"It was announced in the town about a week ago. That the oasis is being built by Otahs Enterprises. A limited liability company," she replied. \n\nOtahs Enterprises? \n\n"A new company that is on a steep incline. And they have been building in certain areas. Asking other towns and cities to build. All but one kept declining. And guess which one just accepted their proposal?"\n\n[["Our very own city council?"|The Council of Crimson Glade]]\n[["One of the neighboring towns?"|The town over?]]\n[[Think and ponder a moment.]]
table.stats th {\n\ttext-align: left;\n}\ntable.stats td {\n\ttext-align: right;\n}\ntable.stats th + td {\n\tmin-width: 5em;\n}\n\n.header {\nheight: 50px;\nbackground: #000;\nborder: 1px solid #000;\ntop: 0px;\nwidth: 100%;\nposition: fixed;\n}
"Sure." She smiles and you hand her what you owe for the coffee.\n\n\nThe clerk smiles and goes over to the coffee dispenser and makes you a 16 oz. cup of coffee. She places on a cup and hands you the cup of freshly dispensed coffee. You go and sit down and drink it down a bit. It was a refreshing and revigorating.\n\n[[Return to Clerk|Coffee Shop]]\n[[Leave Latteza|outside]]
<<if $soma.gender to "Male">>\nYou walk closer to the man and you look at him. The man smiles as he leaned back on the bench. He seemed to be relaxed. He then looked toward the person who walked forward towards him. He smiled and looked at you. The first thing you notice about her...is the color of the irises in his eyes. "Well Hello there. I did not see you. I am sorry for that. I am Trent and your name is?"\n\n[[Tell him your name|Tell Soma your name]]\n[[Do not reply]]\n\n<<else>>\nYou walk closer to the woman and you look at her. She notices you at the side of her eye. Her head turns around and smiles at you. The first thing you notice about her...is the color of her iris. They are red. The very red color of her aura. However, there was something weird about that aura. \n\n"Well, are you going to keep staring at me? Or are you going to sit down next to me like a <<if $player.gender is "Male">>gentleman<<elseif $player.gender is "Female">>lady<</if>> and tell me your name?\n\n[[Tell him your name|Tell Soma your name]]\n[[Don't say a word...|Do not reply]]\n<</if>>
<<set $gameJoltGameID to 82246>>\n<<set $gameJoltGameKey to "c74f9d1bdcd9572fe2d2b93aaccf7c3a">>\n
<<set $time to turns() + $vt - $days * 96>>\n<<if $time gte 96>><<set $days to $days + 1>><<endif>>\n\n<<if $fc is .75>><<set $fc to 0>>\n<<else>><<set $fc to $fc+ .25>><<endif>>>\n\n<<set $h to $time/4 -$fc>>\n\n<<if $fc is 0>><<set $m to "00">><<else>><<set $m to $fc* 60>><<endif>>\n\nDays: <<print $days>>\nTime: <<if $h gt 23 or $h lt 1>>12:<<print $m>> AM\n<<elseif $h lte 11>><<print $h>>:<<print $m>> AM\n<<elseif $h eq 12>><<print $h>>:<<print $m>> PM\n<<elseif $h lte 23>><<print $h -12>>:<<print $m>> PM\n<<endif>>\n
<<return [Exit] [go 3]>>
G. Carpenter\n\n<small>//Version 0.0.6a//</small>
"Ah ha! Finally, somebody with an appreciation with no alcohol!" The man smiled as he grabed his fountain and cherry grenadine. He smiles as he grabs a small glass and adds the grenadine.\n\nThe drink tastes like a cherry drink, though you can feel the tasteful syrup go down your throat. \n\n"All with Sierra Mist and Cherry. Very nice."\n\nThe man gives you another nudge. He starts smiling and wink at you. "Give Shirley a good ol' gulpin' eh?" You can't tell if this guy is nuts or completely drunk.\n\nYou drink it down just a bit. It was very nice and you could feel the carbonation down your throat.\n\n"Anything else I could give you?"\n\n[["Yes"|Another Drink]]\n["No, I need to go Somewhere"|outside]]\n[["No, I want to do something else"|The Baron]]
Social Links are used to make sure that the main character can solve this. The Social Links help sway the morality of the Character's objectives. However, they are close to having negative social levels.\n\nHowever, there are 10 possible characters. Depending on the Gender of the protagonist\n\nFor a girl it would be 3 boys and 2 girls\nFOr a boy it would be 2 boys and 3 girls.\nThe Player's Social link is called Cardia\n\nThese characters are:\n\tBoys:\n\t\tRyan (Ops)\n\t\tMarkus \n\t\tMicheal\n\t\tTrent (Soma)\n\t\tGeorge\n\n\tGirls:\n\t\tDaisy (Soma)\n\t\tKarla\n\t\tEmily\n\t\tSamantha (Ops)\n\t\tRuby ()\n\n\nHow these are randomly selected is via an Arcana variable.\nThis is really becoming a Persona Fan Game...\n\nArcana Variables are named after the Stigmas in Trauma Center New Blood. The only problem....I would have to rewrite the coffee and park scenes...Pfft, not that big of a deal. Besides, all it is that I need to rewrite some of the scenes. Barista is the person in need if female and the manager if male.\n\nI hav decided to go with a storyline in order. But first is Cheir since she is the main pivotal point in the game now. However, now realizing it. You need a body before the extremities. A body can survive without them. But Extremities mainly cannot survive without a body.\nThe idea behind the game is the construction of the Warriors of Stigma. A name that shall be changed soon. \n\n//\nCheir: \nSoma: Daisy Hander (Female) Trent Palmer (Male)\nOnyx\nOps: Ryan Seen (Male) Samantha Eisa (Female)\nBronchio: \n//\n\n\nAlso as well, I would probably based the last names on these 5 Arcanan names..question is how\n\n''\nSoma:\n\tSomsan?\n\tSkinner?\n\nOnyx:\n\tClawson?\n\tNailan?\n\tBlack? (Onyx is also a name of a gem after all)\n\nBronchio:\n\tArmer?\n\tBrawn?\n\t\n''\n